home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
aminet
/
util
/
crypt
/
idea.lha
/
idea.doc
< prev
next >
Wrap
Text File
|
1992-08-26
|
4KB
|
133 lines
NAME
idea - encrypt and decrypt using IDEA
SYNOPSIS
idea [ -e | -d ] [ -ecb | -cbcN | -cfbN | -ofbN ]
( -k keyString | -K keyHexString )
[ inputFile [ ouputFile ] ]
idea [ -h | -H ] [ -tan | -abr ]
[ -k keyString | -K keyHexString ]
[ inputFile [ [ ouputFile ] hashvalFile ]
DESCRIPTION
Idea reads inputFile and writes the en/decrypted data to
outputFile or writes the hash value to hashvalFile. If file
name is not given in command line, idea uses standard input
or output. If the input file name is given as '-', idea
reads from the standard input.
IDEA (International Data Encryption Algorithm) is a block
cipher developed by Xuejia Lai and Prof. Dr. J. L. Massey at
the Swiss Federal Institute of Technology.
OPTIONS
-e Encrypt data. (default)
-d Decrypt data.
-k Key is specified with keyString.
-K Key and initial values are specified with keyHexString.
-h Compute a 128 bit hash value from the input data. The
hash value is written to hashvalFile (or standard out-
put).
-H Compute a 128 bit hash value from the input data. The
input is copied to outputFile (or standard output) and
the hash value is written to hashvalFile (or standard
error).
Notation:
N = interleave factor (1 is default)
z = 128 bit key
x[i] = 64 bit plaintext block
y[i] = 64 bit ciphertext block
x[1]..x[L] = plaintext (last block is filled with
zeros)
x[L+1] = length of plaintext in bits
y[1]..y[L+1]= ciphertext
IDEA(z, .) = encryption function
IIDEA(z, .) = decryption function
x = IIDEA(z, IDEA(z ,x))
Encryption / Decryption Modes:
-ecb electronic code book mode
y[i] = IDEA(z, x[i])
x[i] = IIDEA(z, y[i])
-cbc cipher block chaining mode (cbc1 is default)
y[i] = IDEA(z, x[i] ^ y[i-N])
x[i] = IIDEA(z, y[i]) ^ y[i-N]
-cfb ciphertext feedback mode
y[i] = x[i] ^ IDEA(z, y[i-N])
x[i] = y[i] ^ IDEA(z, y[i-N])
-ofb output feedback mode
h[i] = IDEA(z, h[i-N])
y[i] = x[i] ^ h[i]
x[i] = y[i] ^ h[i]
Hash Functions:
If no key is given, idea uses the all zero key.
hash value = h[L+1] * 2**64 + g[L+1]
h[0] = z / 2**64
g[0] = z % 2**64
-tan tandem DM-scheme (default)
w = IDEA(g[i-1] * 2**64 + x[i], h[i-1])
h[i] = h[i-1] ^ w
g[i] = g[i-1] ^ IDEA(x[i] * 2**64 + w, g[i-1])
-abr abreast DM-scheme
h[i] = h[i-1] ^ IDEA(g[i-1] * 2**64 + x[i], h[i-1])
g[i] = g[i-1] ^ IDEA(x[i] * 2**64 + h[i-1], ~ g[i-1])
Key Formats:
keyHexString = { '0'..'9' | 'a'..'f' | 'A'..'F' | ':' }
keyHexString = z:y[1-N]:y[2-N]:y[3-N]..
keyString = { '!'..'~' } = z
EXAMPLES
To encrypt and decrypt a file in cipher block chaining mode
with an interleave factor of 8:
idea -e -cbc8 -K 12345:67:89::ab:cDEf data data.cr
idea -d -cbc8 -K 12345:67:89::ab:cDef data.cr data.ori
data and data.ori are identical
To compute the hash value with tandem DM-scheme:
idea -h data
To compute the hash value and encrypt the data in one step:
idea -Hk "k e y" data | idea -K 123:9a::eF - data.cr
PATENT
IDEA is registered as the international patent WO 91/18459
"Device for Converting a Digital Block and the Use thereof".
For commercial use of IDEA, one should contact
ASCOM TECH AG
Freiburgstrasse 370
CH-3018 Bern, Switzerland
AUTHOR
Richard De Moliner (demoliner@isi.ethz.ch)
Signal and Information Processing Laboratory
Swiss Federal Institute of Technology
CH-8092 Zurich, Switzerland
BUGS
This program is at most as strong as IDEA itself. So, we
urge the user to use this program only after he has assured
himself that IDEA is strong enough AND he has read the
source code of this program and its libraries AND he has
compiled the program himself with a troyan-free compiler. WE
DO NOT GUARANTEE THAT THIS PROGRAM IS A DECENT ENCRYPTION
PROGRAM.